package com.oracle.lingshangejia.utils;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.Map;
import java.util.Set;

public class NewChildSQLiteHelper extends SQLiteOpenHelper {
    private final static String DATABASE_NAME = "lingShangYiJia";//数据库的名字
    private final static int DATABASE_VERSION = 1;
    private final static String TABLE_NAME = "NewChildArchives";//表名

    //构造函数，创建数据库
    public NewChildSQLiteHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // 建表
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE " + TABLE_NAME
                + "(id INTEGER PRIMARY KEY AUTOINCREMENT,"
                + " xm VARCHAR(100)  NOT NULL,"// 姓名
                + " bh VARCHAR(100),"// 编号
                + " xb VARCHAR(2) DEFAULT '9',"// 性别，默认未说明的性别
                + " csrq VARCHAR(100),"// 出生日期
                + " sfzh VARCHAR(100) NOT NULL,"// 身份证号
                + " gzdw VARCHAR(100),"// 工作单位
                + " brdh VARCHAR(100) NOT NULL,"// 本人电话
                + " lxrxm VARCHAR(100),"// 联系人姓名
                + " lxrdh VARCHAR(100),"// 联系人电话
                + " czlx VARCHAR(100) DEFAULT '1',"// 长住类型，默认户籍
                + " mz VARCHAR(100) DEFAULT '1',"// 民族，默认汉族
                + " xx VARCHAR(100) DEFAULT '5',"// 血型，默认不详
                + " yx VARCHAR(100) DEFAULT '3',"// 阴性，默认不详
                + " whcd VARCHAR(100) DEFAULT '10',"// 文化程度，默认不详
                + " zy VARCHAR(100) DEFAULT '8',"// 职业，默认无职业
                + " hyzk VARCHAR(100) DEFAULT '5',"// 婚姻状况，默认未说明的婚姻状况
                + " ylfyzffs VARCHAR(100) DEFAULT '1',"// 医疗费用支付方式，默认城镇职工基本医疗保险
                + " ylfyzffs_qt VARCHAR(100),"// 医疗费用支付方式 其它
                + " ywgms VARCHAR(100) DEFAULT '1',"// 药物过敏史，默认无
                + " ywgms_qt VARCHAR(100),"// 药物过敏史 其它
                + " bls VARCHAR(100) DEFAULT '1',"// 暴露史，默认无
                + " jb VARCHAR(100) DEFAULT '1',"// 疾病，默认无
                + " jb_gxy_qzsj VARCHAR(100),"// 高血压确诊时间
                + " jb_tnb_qzsj VARCHAR(100),"// 糖尿病确诊时间
                + " jb_gxb_qzsj VARCHAR(100),"// 冠心病确诊时间
                + " jb_mxzsxfjb_qzsj VARCHAR(100),"// 慢性组赛性肺疾病确诊时间
                + " jb_exzl_qzsj VARCHAR(100),"//恶性肿瘤 确诊时间
                + " jb_exzl_wz VARCHAR(100),"// 恶性肿瘤位置
                + " jb_ncz_qzsj VARCHAR(100),"// 脑卒中 确诊时间
                + " jb_yzjsza_qzsj VARCHAR(100),"// 严重精神障碍 确诊时间
                + " jb_jhb_qzsj VARCHAR(100),"// 结核病 确诊时间
                + " jb_gy_qzsj VARCHAR(100),"// 肝炎确诊时间
                + " jb_qtfdcrb_qzsj VARCHAR(100),"// 其他法定传染病 确诊时间
                + " jb_zyb_qzsj VARCHAR(100),"// 职业病 确诊时间
                + " jb_zyb_wz VARCHAR(100),"// 职业病 位置
                + " jb_qt_qzsj VARCHAR(100),"// 其他 确诊时间
                + " ss VARCHAR(100) DEFAULT '1',"// 手术，默认无
                + " ss_mc1 VARCHAR(100),"// 手术名称1
                + " ss_sj1 VARCHAR(100),"// 手术时间1
                + " ss_mc2 VARCHAR(100),"// 手术名称2
                + " ss_sj2 VARCHAR(100),"// 手术时间2
                + " ws VARCHAR(100) DEFAULT '1',"// 外伤，默认无
                + " ws_mc1 VARCHAR(100),"// 外伤名称1
                + " ws_sj1 VARCHAR(100),"// 外伤时间1
                + " ws_mc2 VARCHAR(100),"// 外伤名称2
                + " ws_sj2 VARCHAR(100),"// 外伤时间2
                + " sx VARCHAR(100) DEFAULT '1',"// 输血，默认无
                + " sx_yy1 VARCHAR(100),"// 输血原因1
                + " sx_sj1 VARCHAR(100),"// 输血时间1
                + " sx_yy2 VARCHAR(100),"// 输血原因2
                + " sx_sj2 VARCHAR(100),"// 输血时间2
                + " jzs_fq VARCHAR(100) DEFAULT '1',"// 家族史_父亲，默认无
                + " jzs_fq_qt VARCHAR(100),"// 家族史_父亲_其他
                + " jzs_mq VARCHAR(100) DEFAULT '1',"// 家族史母亲，默认无
                + " jzs_mq_qt VARCHAR(100),"// 家族史母亲其他
                + " jzs_xdjm VARCHAR(100) DEFAULT '1',"// 家族史兄弟姐妹，默认无
                + " jzs_xdjm_qt VARCHAR(100),"// 家族史兄弟姐妹其他
                + " jzs_zn VARCHAR(100) DEFAULT '1',"// 家族史子女，默认无
                + " jzs_zn_qt VARCHAR(100),"// 家族史子女其他
                + " ycbs VARCHAR(100) DEFAULT '1',"// 遗传病史，默认无
                + " ycbs_jbmc VARCHAR(100),"// 遗传病史 疾病名称
                + " cjqk VARCHAR(100) DEFAULT '1',"// 残疾情况，默认无残疾
                + " cjqk_qtcj VARCHAR(100),"// 残疾情况 其他残疾
                + " cfpfss VARCHAR(100) DEFAULT '1',"// 厨房排风设施，默认无
                + " rllx VARCHAR(100) DEFAULT '6',"// 燃料类型，默认其它
                + " ys VARCHAR(100) DEFAULT '6',"// 饮水，默认其它
                + " cs VARCHAR(100) DEFAULT '1',"// 厕所，默认卫生厕所
                + " qcl VARCHAR(100) DEFAULT '1')";// 禽畜栏，默认无
        db.execSQL(sql);
    }

    // 更新
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
        db.execSQL(sql);
        onCreate(db);
    }
    //获取游标
    public Cursor select() {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
        return cursor;
    }

    //插入一条记录
    public long insert(Map<String, String> values) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        Set<String> keys = values.keySet();
        for (String key : keys) {
            cv.put(key, values.get(key));
        }
        long row = db.insert(TABLE_NAME, null, cv);
        return row;
    }

    //更新记录
    public void update(Map<String, String> values, String idCard) {
        SQLiteDatabase db = this.getWritableDatabase();
        String where = "sfzh = ?";
        //String[] whereValue = {Integer.toString(id)};
        String[] whereValue = new String[]{idCard};
        ContentValues cv = new ContentValues();
        Set<String> keys = values.keySet();
        for (String key : keys) {
            // 根据身份证号更新数据
            if(!key.equals("sfzh")) {
                cv.put(key, values.get(key));
            }
        }
        db.update(TABLE_NAME, cv, where, whereValue);
    }

    //根据身份证号查询
    public Cursor queryByIdCard(String[] args) {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE sfzh = ?", args);
        return cursor;
    }
    //查询所有数据
    public Cursor queryAll() {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME , null);
        return cursor;
    }

    public void deleteAll() {
        SQLiteDatabase db = this.getReadableDatabase();
        String where = "1 = 1";
        String[] whereValue = null;
        db.delete(TABLE_NAME, where, whereValue);
    }
}
